﻿// 803. 区间合并.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>

using  namespace std;
/*

https://www.acwing.com/problem/content/805/

给定 n 个区间 [li,ri]，要求合并所有有交集的区间。

注意如果在端点处相交，也算有交集。

输出合并完成后的区间个数。

例如：[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。

输入格式
第一行包含整数 n。

接下来 n 行，每行包含两个整数 l 和 r。

输出格式
共一行，包含一个整数，表示合并区间完成后的区间个数。

数据范围
1≤n≤100000,
−109≤li≤ri≤109
输入样例：
5
1 2
2 4
5 6
7 8
7 9
输出样例：
3
*/

const int N = 100010;
struct SEG {
    int l, r;
}seg[N];
int n;

bool cmp(const struct SEG& a, const struct SEG& b) {
    return a.l < b.l;
}

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> seg[i].l >> seg[i].r;
    }

    sort(&seg[1],&seg[1]+n,cmp);

    int ans = 0; int curr = -1e9 - 10;
     
    for (int i = 1; i <= n; i++) {
        if (seg[i].l > curr) {
            ans++;
            curr = max(curr, seg[i].r);
        }
        else {
            curr = max(curr, seg[i].r);
        }
    }

    cout << ans << endl;

    return 0;
}

 